package com.crl.game.simulation.common.action
{
	import com.crl.game.simulation.client.ActorProxy;
	import com.crl.game.simulation.server.Actor;
	import com.crl.manager.ITickable;

	public interface IAction extends ITickable
	{
		function setFinished(bool:Boolean):void;
		
		function get isFinished():Boolean;
		
		function get type():String;
		
		function replace(action:IAction):Boolean;
		
		/**
		 * 当前动作是否阻止了参数动作; 
		 * @param action
		 * @return 
		 * 
		 */		
		function isBlock(action:IAction):Boolean;
		
		function start(actor:ActorProxy):void;
		
		/**
		 * 挂起; 
		 * @return 
		 * 
		 */		
		function giveup():Boolean;
	}
}